﻿using System;
using System.Data;

namespace FluentSql
{
    public interface IScalarFluentSqlCommand : IFluentSqlCommand
    {
        #region Public Methods

        T ExecuteScalar<T>(Func<object, T> iDeserialize);

        IScalarFluentSqlCommand SetCommand(string iCommand);

        IScalarFluentSqlCommand SetCommandType(CommandType iCommandType);

        IScalarFluentSqlCommand SetContext(IDalContext iContext);

        IScalarFluentSqlCommand SetIsolationLevel(IsolationLevel iIsolationLevel);

        IScalarFluentSqlCommand SetKeepConnection(bool iKeepConnection);

        IScalarFluentSqlCommand SetParameters(Action<IDalSqlCommand> iSerializeParameters);

        #endregion Public Methods
    }
}
